home *** CD-ROM | disk | FTP | other *** search
- #include <Types.h>
- #include <Resources.h>
-
- #include "SettingsUtils.h"
-
- /*********************************************************************************/
- /* settings utils */
- enum {
- settingsType = 'SFpf',
- settingsID = -4080
- };
-
- void SaveSettings(settingsHandle theSettings)
- {
- Str255 foo;
- if (!theSettings) {
- DebugStr("\pBogus settings handle in SaveSettings.");
- return;
- }
- ChangedResource((Handle)theSettings);
- if (ResError()!=noErr) DebugStr("\pError updating resource?!");
- UpdateResFile(CurResFile());
- if (ResError()!=noErr) DebugStr("\pError updating resFile?!");
- }
-
- settingsHandle RetrieveSettings(void)
- {
- Handle oldSettings = GetResource(settingsType,settingsID);
-
- if (!oldSettings) {
- Handle theSettings = NewHandleClear(sizeof(settings));
- Str255 foo;
- foo[0] = 0;
-
- // DebugStr("\pAdding new settings resource");
- AddResource(theSettings,settingsType,settingsID,foo);
- if (ResError()!=noErr) DebugStr("\pError adding new resource?!");
- UpdateResFile(CurResFile());
- if (ResError()!=noErr) DebugStr("\pError updating resFile w/new?!");
- oldSettings = theSettings;
- }
-
- if (GetHandleSize(oldSettings)!=sizeof(settings)) {
- DebugStr("\pBad Handle Size in RetrieveSettings");
- return 0;
- }
- return((settingsHandle)oldSettings);
- }
-
- void SaveItemNumber(short item)
- {
- settingsHandle theSettings = RetrieveSettings();
- (**theSettings).selectedItemNumber = item;
- SaveSettings(theSettings);
- }
-
- short GetSavedItemNumber(void)
- {
- settingsHandle theSettings = RetrieveSettings();
- return((**theSettings).selectedItemNumber);
- }
-
- void SaveRadioOption(Boolean state)
- {
- settingsHandle theSettings = RetrieveSettings();
- (**theSettings).isRadioOptionOn = state;
- SaveSettings(theSettings);
- }
-
- Boolean GetSavedRadioOption(void)
- {
- settingsHandle theSettings = RetrieveSettings();
- return((**theSettings).isRadioOptionOn);
- }
-